Apache ActiveMQ এর সাথে Java ইন্টিগ্রেশন

Java Technologies - অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ)
155
155

অ্যাপাচি অ্যাকটিভএমকিউ একটি Java ভিত্তিক মেসেজ ব্রোকার যা Java Message Service (JMS) API ব্যবহার করে, যার মাধ্যমে Java অ্যাপ্লিকেশনগুলি সহজে মেসেজ পাঠাতে এবং গ্রহণ করতে পারে। অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার মাধ্যমে, আপনি মেসেজিং সিস্টেম তৈরি করতে পারেন যা একাধিক অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে যোগাযোগ এবং ডেটা আদান-প্রদান সক্ষম করবে। এখানে, অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java অ্যাপ্লিকেশন ইন্টিগ্রেট করার পদ্ধতি নিয়ে আলোচনা করা হবে।


অ্যাপাচি অ্যাকটিভএমকিউ এবং Java ইন্টিগ্রেশন

অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার জন্য আপনাকে JMS API ব্যবহার করতে হবে, যা অ্যাপাচি অ্যাকটিভএমকিউ এর মাধ্যমে মেসেজ পাঠানোর এবং গ্রহণ করার জন্য ব্যবহৃত হয়। নিচে সাধারণভাবে এই প্রক্রিয়া বর্ণনা করা হয়েছে।


Java অ্যাপ্লিকেশন তৈরির জন্য প্রয়োজনীয় উপাদান

১. অ্যাপাচি অ্যাকটিভএমকিউ লাইব্রেরি যুক্ত করা

Java প্রোজেক্টে অ্যাপাচি অ্যাকটিভএমকিউ এর লাইব্রেরি অন্তর্ভুক্ত করার জন্য আপনি Maven অথবা Gradle ব্যবহার করতে পারেন। Maven ব্যবহার করলে আপনার pom.xml ফাইলে নিচের ডিপেনডেন্সি যুক্ত করতে হবে:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.17.0</version> <!-- সর্বশেষ সংস্করণ ব্যবহার করুন -->
</dependency>

২. Java Message Service (JMS) API

JMS হল Java এর একটি API, যা মেসেজিং সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়। অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার জন্য JMS ব্যবহার করা হয়, যা মেসেজ প্রোডিউসার এবং কনসিউমারকে সিস্টেমের মধ্যে মেসেজ আদান-প্রদান করতে সহায়তা করে।


Java প্রোগ্রাম ব্যবহার করে অ্যাপাচি অ্যাকটিভএমকিউ-তে মেসেজ পাঠানো (Producer)

এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি Java প্রোগ্রাম মেসেজ প্রেরণ করবে অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageProducerExample {

    public static void main(String[] args) throws JMSException {
        
        // ১. ActiveMQ connection factory তৈরি
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

        // ২. কানেকশন তৈরি
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // ৩. সেশন তৈরি
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // ৪. ডেস্টিনেশন (Queue অথবা Topic)
        Destination destination = session.createQueue("TEST.QUEUE");

        // ৫. প্রোডিউসার তৈরি
        MessageProducer producer = session.createProducer(destination);

        // ৬. মেসেজ তৈরি
        TextMessage message = session.createTextMessage("Hello, ActiveMQ!");

        // ৭. মেসেজ প্রেরণ
        producer.send(message);

        // ৮. রিসোর্স বন্ধ করা
        producer.close();
        session.close();
        connection.close();

        System.out.println("Message sent successfully!");
    }
}

এই প্রোগ্রামে, একটি প্রোডিউসার (MessageProducer) তৈরি করা হয় যা TEST.QUEUE কিউতে একটি মেসেজ পাঠাবে।


Java প্রোগ্রাম ব্যবহার করে অ্যাপাচি অ্যাকটিভএমকিউ থেকে মেসেজ গ্রহণ (Consumer)

এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি Java প্রোগ্রাম অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকার থেকে মেসেজ গ্রহণ করবে:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageConsumerExample {

    public static void main(String[] args) throws JMSException {
        
        // ১. ActiveMQ connection factory তৈরি
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

        // ২. কানেকশন তৈরি
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // ৩. সেশন তৈরি
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // ৪. ডেস্টিনেশন (Queue অথবা Topic)
        Destination destination = session.createQueue("TEST.QUEUE");

        // ৫. কনসিউমার তৈরি
        MessageConsumer consumer = session.createConsumer(destination);

        // ৬. মেসেজ গ্রহণ করা
        Message message = consumer.receive();

        // ৭. মেসেজ প্রিন্ট করা
        if (message instanceof TextMessage) {
            TextMessage textMessage = (TextMessage) message;
            System.out.println("Received message: " + textMessage.getText());
        }

        // ৮. রিসোর্স বন্ধ করা
        consumer.close();
        session.close();
        connection.close();
    }
}

এখানে একটি কনসিউমার (MessageConsumer) তৈরি করা হয়েছে যা TEST.QUEUE কিউ থেকে মেসেজ গ্রহণ করবে এবং তা প্রদর্শন করবে।


অ্যাপাচি অ্যাকটিভএমকিউ এবং Java এর মধ্যে মেসেজ আদান-প্রদান

  1. প্রোডিউসার (Producer) একটি মেসেজ তৈরি করে এবং এটি অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে পাঠায়।
  2. কনসিউমার (Consumer) অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকার থেকে মেসেজ গ্রহণ করে এবং এটি প্রক্রিয়া করে।

এই প্রক্রিয়া Java অ্যাপ্লিকেশনের মাধ্যমে মেসেজিং সিস্টেমের মধ্যে ডেটা শেয়ার করার একটি কার্যকরী পদ্ধতি প্রদান করে।


সারাংশ

অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন খুবই সহজ এবং সরল। Java অ্যাপ্লিকেশনে অ্যাপাচি অ্যাকটিভএমকিউ ব্যবহারের জন্য আপনাকে JMS API ব্যবহার করতে হবে, যা মেসেজ প্রেরণ এবং গ্রহণের কাজ করে। প্রোডিউসার এবং কনসিউমার ক্লাসের মাধ্যমে মেসেজ পাঠানো এবং গ্রহণ করা সম্ভব হয়, যা বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে ডেটা এক্সচেঞ্জ করতে সহায়তা করে।

common.content_added_by

Java Message Service (JMS) এর সঙ্গে ইন্টিগ্রেশন

131
131

Java Message Service (JMS) হল Java প্ল্যাটফর্মের একটি API যা অ্যাপ্লিকেশনগুলির মধ্যে অ্যাসিনক্রোনাস মেসেজিং যোগাযোগের সুবিধা প্রদান করে। এটি মেসেজ প্রডিউসার (Producer) এবং কনজিউমার (Consumer) এর মধ্যে মেসেজ আদান-প্রদান নিশ্চিত করে। অ্যাপাচি অ্যাকটিভএমকিউ একটি JMS কমপ্লায়েন্ট মেসেজ ব্রোকার, যা JMS প্রটোকল সাপোর্ট করে এবং বিভিন্ন ধরনের মেসেজিং সিস্টেমে কার্যকরীভাবে কাজ করে।

অ্যাপাচি অ্যাকটিভএমকিউ এবং JMS এর মধ্যে ইন্টিগ্রেশন অ্যাপ্লিকেশনগুলোকে সহজেই একে অপরের সাথে যোগাযোগ করতে সাহায্য করে এবং তাদের মধ্যে মেসেজ পাঠানোর জন্য সাধারণ API প্রদান করে।


Apache ActiveMQ এবং JMS এর ইন্টিগ্রেশন স্টেপস

JMS এর মাধ্যমে অ্যাপাচি অ্যাকটিভএমকিউ এর সঙ্গে ইন্টিগ্রেট করতে হলে, প্রথমে কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হয়। নিচে প্রতিটি পদক্ষেপ বর্ণনা করা হলো।


১. অ্যাপাচি অ্যাকটিভএমকিউ ইন্সটল করা

প্রথমে অ্যাপাচি অ্যাকটিভএমকিউ সঠিকভাবে ইন্সটল করতে হবে। এর আগে যদি অ্যাকটিভএমকিউ ইন্সটল না করে থাকেন, তবে প্রথমে Apache ActiveMQ Download থেকে সর্বশেষ ভার্সন ডাউনলোড করে ইন্সটল করুন।


২. JMS ক্লায়েন্ট লাইব্রেরি অ্যাড করা

আপনার Java অ্যাপ্লিকেশনকে ActiveMQ ব্রোকারের সঙ্গে যোগাযোগ করার জন্য JMS API এবং ActiveMQ JMS Client লাইব্রেরি প্রয়োজন। আপনি Maven অথবা Gradle ব্যবহার করে লাইব্রেরি ইনক্লুড করতে পারেন।

Maven Dependency:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.16.4</version> <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->
</dependency>

Gradle Dependency:

implementation 'org.apache.activemq:activemq-client:5.16.4'  <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->

৩. JMS কনফিগারেশন এবং ActiveMQ ব্রোকারে সংযোগ স্থাপন

JMS ক্লায়েন্ট ব্যবহার করে অ্যাকটিভএমকিউ ব্রোকারের সঙ্গে সংযোগ স্থাপন করার জন্য, প্রথমে ConnectionFactory তৈরি করতে হবে, যা অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে যোগাযোগ স্থাপন করবে।

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class JMSProducer {
    public static void main(String[] args) throws JMSException {
        // ActiveMQ ব্রোকারের URL দিয়ে কনফিগারেশন তৈরি
        String brokerURL = "tcp://localhost:61616"; // অ্যাকটিভএমকিউ ব্রোকারের URL
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerURL);

        // JMS Connection তৈরি
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // JMS Session তৈরি
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // Queue বা Topic তৈরি
        Destination destination = session.createQueue("TestQueue");  // বা createTopic("TestTopic");

        // MessageProducer তৈরি
        MessageProducer producer = session.createProducer(destination);
        
        // মেসেজ তৈরি
        TextMessage message = session.createTextMessage("Hello, ActiveMQ with JMS!");

        // মেসেজ পাঠানো
        producer.send(message);
        System.out.println("Message Sent: " + message.getText());

        // সংযোগ বন্ধ করা
        producer.close();
        session.close();
        connection.close();
    }
}

৪. JMS কনজিউমার তৈরি করা

এখন, একটি কনজিউমার তৈরি করতে হবে যা ব্রোকার থেকে মেসেজ গ্রহণ করবে। এখানে একটি উদাহরণ দেওয়া হলো:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class JMSConsumer {
    public static void main(String[] args) throws JMSException {
        // ActiveMQ ব্রোকারের URL দিয়ে কনফিগারেশন তৈরি
        String brokerURL = "tcp://localhost:61616";
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerURL);

        // JMS Connection তৈরি
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // JMS Session তৈরি
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // Queue বা Topic তৈরি
        Destination destination = session.createQueue("TestQueue");

        // MessageConsumer তৈরি
        MessageConsumer consumer = session.createConsumer(destination);

        // মেসেজ গ্রহণ করা
        TextMessage message = (TextMessage) consumer.receive();
        System.out.println("Message Received: " + message.getText());

        // সংযোগ বন্ধ করা
        consumer.close();
        session.close();
        connection.close();
    }
}

৫. ActiveMQ ব্রোকার চালু করা

এখন অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকার চালু করুন। উইন্ডোজ, লিনাক্স বা macOS-এ activemq স্ক্রিপ্ট রান করে এটি করা যায়।

cd <activemq-directory>/bin
./activemq start

এর পর, আপনার Java অ্যাপ্লিকেশনটি চালু করুন এবং ব্রোকারে মেসেজ পাঠান ও গ্রহণ করুন।


সারাংশ

JMS এবং Apache ActiveMQ এর ইন্টিগ্রেশন একটি খুবই সাধারণ এবং কার্যকরী পদ্ধতি যা অ্যাপ্লিকেশনগুলোর মধ্যে অ্যাসিনক্রোনাস মেসেজিং যোগাযোগের জন্য ব্যবহৃত হয়। অ্যাকটিভএমকিউ ব্যবহার করে Queue এবং Topic মডেলগুলোতে মেসেজ পাঠানো এবং গ্রহণ করার জন্য Java অ্যাপ্লিকেশনগুলো সহজেই কনফিগার করা যেতে পারে। এই ইন্টিগ্রেশন আপনাকে একটি স্কেলেবল এবং রিলায়েবল মেসেজিং সিস্টেম তৈরি করতে সাহায্য করবে।

common.content_added_by

ActiveMQ এর সাথে Spring Framework ইন্টিগ্রেশন

124
124

অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) এবং স্প্রিং ফ্রেমওয়ার্ক (Spring Framework) একসাথে ব্যবহৃত হলে এটি একটি শক্তিশালী মেসেজিং সিস্টেম তৈরি করতে সক্ষম হয়, যা জাভা অ্যাপ্লিকেশনগুলিতে মেসেজ পাসিং এবং অ্যাসিঙ্ক্রোনাস যোগাযোগ পরিচালনা করতে সহায়তা করে। স্প্রিং ফ্রেমওয়ার্ক অ্যাকটিভএমকিউ এর সাথে সহজে ইন্টিগ্রেট হতে পারে, যার মাধ্যমে আপনি মেসেজিং সিস্টেমকে আরও কার্যকর এবং স্কেলযোগ্যভাবে পরিচালনা করতে পারেন।

Spring Framework এর সাথে ActiveMQ ইন্টিগ্রেশন

স্প্রিং ফ্রেমওয়ার্ক অ্যাকটিভএমকিউ এর সাথে ইন্টিগ্রেট করতে কিছু সাধারণ ধাপ অনুসরণ করতে হয়। এখানে স্প্রিং এর Spring JMS (Java Message Service) API ব্যবহৃত হয়, যা অ্যাকটিভএমকিউ-এর সাথে যোগাযোগ স্থাপন করতে সহায়তা করে।

১. ডিপেনডেন্সি যোগ করা

প্রথমে আপনাকে স্প্রিং এবং অ্যাকটিভএমকিউ সম্পর্কিত ডিপেনডেন্সি আপনার pom.xml (যদি আপনি মাভেন ব্যবহার করেন) ফাইলে যোগ করতে হবে।

<dependencies>
    <!-- Spring JMS -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>5.3.20</version>
    </dependency>

    <!-- Apache ActiveMQ -->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-spring</artifactId>
        <version>5.16.3</version>
    </dependency>
</dependencies>

২. Spring Context Configuration

স্প্রিং কনফিগারেশনে অ্যাকটিভএমকিউ ব্রোকারের সাথে সংযোগ স্থাপন করার জন্য একটি ConnectionFactory কনফিগার করতে হবে। এটি স্প্রিং কনটেইনারে সেভ করা হয়, যাতে বিভিন্ন প্রোডিউসার এবং কনজিউমার এর মাধ্যমে মেসেজ সিস্টেম পরিচালিত হতে পারে।

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- ActiveMQ Connection Factory -->
    <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616"/>
    </bean>

    <!-- JMS Template -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="defaultDestinationName" value="queue/testQueue"/>
    </bean>

    <!-- Default Message Listener Container -->
    <bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="destinationName" value="queue/testQueue"/>
        <property name="messageListener" ref="messageListener"/>
    </bean>

    <!-- Message Listener Bean -->
    <bean id="messageListener" class="com.example.MessageListener"/>
</beans>

৩. Message Producer (Producer) তৈরি করা

স্প্রিং অ্যাপ্লিকেশনে একটি প্রোডিউসার তৈরি করতে, আপনাকে JmsTemplate ব্যবহার করতে হবে, যা মেসেজ প্রেরণের জন্য ব্যবহৃত হয়। নিচে একটি সিম্পল প্রোডিউসারের উদাহরণ দেওয়া হল:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

@Component
public class MessageProducer {

    @Autowired
    private JmsTemplate jmsTemplate;

    public void sendMessage(String message) {
        jmsTemplate.convertAndSend("queue/testQueue", message);
    }
}

এই কোডটি testQueue নামে একটি কিউতে মেসেজ পাঠাবে।

৪. Message Consumer (Consumer) তৈরি করা

কনজিউমার তৈরি করতে, আপনাকে MessageListener ইন্টারফেস ইমপ্লিমেন্ট করতে হবে, যা অ্যাকটিভএমকিউ কিউ থেকে মেসেজ গ্রহণ করে এবং প্রসেস করে।

import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

public class MessageListener implements MessageListener {

    @Override
    public void onMessage(Message message) {
        try {
            String textMessage = ((TextMessage) message).getText();
            System.out.println("Received message: " + textMessage);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এটি testQueue কিউ থেকে মেসেজ গ্রহণ করে এবং কনসোল এ প্রিন্ট করবে।

৫. অ্যাপ্লিকেশন চালানো

এখন, আপনার অ্যাপ্লিকেশন চালানোর জন্য স্প্রিং কনটেইনারকে লোড করতে হবে। এটি সাধারণত AnnotationConfigApplicationContext বা ClassPathXmlApplicationContext এর মাধ্যমে করা হয়।

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MainApplication {

    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        MessageProducer producer = context.getBean(MessageProducer.class);
        producer.sendMessage("Hello, ActiveMQ with Spring!");
    }
}

এই কোডটি একটি মেসেজ প্রোডিউস করবে এবং testQueue কিউতে পাঠাবে। কনজিউমার সেই মেসেজ গ্রহণ করবে এবং কনসোলে দেখাবে।


সারাংশ

  • ActiveMQ এবং Spring Integration: স্প্রিং ফ্রেমওয়ার্কের সাথে অ্যাকটিভএমকিউ ইন্টিগ্রেট করার জন্য JmsTemplate, ConnectionFactory, এবং MessageListener ব্যবহার করা হয়। এই সংযোগের মাধ্যমে অ্যাপ্লিকেশনগুলি মেসেজ পাসিং, অ্যাসিঙ্ক্রোনাস কমিউনিকেশন, এবং মেসেজ কিউ পরিচালনা করতে সক্ষম হয়।
  • Producer এবং Consumer: প্রোডিউসার মেসেজ পাঠানোর জন্য JmsTemplate ব্যবহার করে এবং কনজিউমার MessageListener এর মাধ্যমে মেসেজ গ্রহণ করে।
  • Configuration: স্প্রিং কনফিগারেশন ফাইলে অ্যাকটিভএমকিউ সংযোগ এবং মেসেজ লিসেনিং কনফিগার করা হয়।

স্প্রিং ফ্রেমওয়ার্ক এবং অ্যাপাচি অ্যাকটিভএমকিউ ইন্টিগ্রেশন একটি শক্তিশালী মেসেজিং সিস্টেম তৈরি করতে সক্ষম যা বড় এবং স্কেলেবল অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।

common.content_added_by

ActiveMQ এর মাধ্যমে Message Producers এবং Consumers তৈরি

134
134

অ্যাপাচি অ্যাকটিভএমকিউ একটি মেসেজ ব্রোকার সিস্টেম যা মেসেজিং সিস্টেমের মধ্যে তথ্য প্রেরণ এবং গ্রহণের কাজ করে। এই প্রক্রিয়াতে Message Producers এবং Message Consumers দুটি প্রধান ভূমিকা পালন করে। অ্যাকটিভএমকিউ ব্যবহার করে, Java অ্যাপ্লিকেশন তৈরি করা হয় যা মেসেজ পাঠানোর জন্য প্রোডিউসার (Producer) এবং গ্রহণ করার জন্য কনজিউমার (Consumer) হিসেবে কাজ করে।

এখানে আমরা অ্যাকটিভএমকিউ ব্যবহার করে একটি Message Producer এবং Message Consumer তৈরি করার প্রক্রিয়া দেখবো।


১. ActiveMQ Message Producer তৈরি করা

একটি Message Producer হলো এমন একটি অ্যাপ্লিকেশন যা মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়। এটি একটি নির্দিষ্ট কিউ (Queue) বা টপিক (Topic) ব্যবহার করে মেসেজ পাঠায়।

Message Producer কোড উদাহরণ:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageProducerExample {
    public static void main(String[] args) {
        try {
            // ActiveMQ ConnectionFactory তৈরি
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();  // সংযোগ শুরু করা

            // সেশন তৈরি
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            // কিউ তৈরি
            Destination destination = session.createQueue("TEST_QUEUE");

            // MessageProducer তৈরি
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  // Non-persistent delivery mode

            // টেক্সট মেসেজ তৈরি
            TextMessage message = session.createTextMessage("Hello, ActiveMQ!");

            // মেসেজ পাঠানো
            producer.send(message);
            System.out.println("Message Sent: " + message.getText());

            // সংযোগ বন্ধ
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে, MessageProducerExample ক্লাসটি একটি মেসেজ তৈরি করে এবং সেটি "TEST_QUEUE"-এ পাঠায়। এখানে Non-persistent মেসেজ ডেলিভারি মোড ব্যবহার করা হয়েছে, যার মানে মেসেজটি দ্রুত পাঠানো হবে এবং সিস্টেম বন্ধ হলে এটি হারিয়ে যাবে।


২. ActiveMQ Message Consumer তৈরি করা

একটি Message Consumer হলো এমন একটি অ্যাপ্লিকেশন যা একটি নির্দিষ্ট কিউ বা টপিক থেকে মেসেজ গ্রহণ করে এবং সেটি প্রক্রিয়া করে।

Message Consumer কোড উদাহরণ:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;

public class MessageConsumerExample {
    public static void main(String[] args) {
        try {
            // ActiveMQ ConnectionFactory তৈরি
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();  // সংযোগ শুরু করা

            // সেশন তৈরি
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            // কিউ তৈরি
            Destination destination = session.createQueue("TEST_QUEUE");

            // MessageConsumer তৈরি
            MessageConsumer consumer = session.createConsumer(destination);

            // মেসেজ গ্রহণ
            Message message = consumer.receive();
            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println("Message Received: " + textMessage.getText());
            }

            // সংযোগ বন্ধ
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে, MessageConsumerExample ক্লাসটি "TEST_QUEUE"-থেকে মেসেজ গ্রহণ করে এবং সেটি কনসোল-এ প্রিন্ট করে।


Message Producers এবং Consumers এর মধ্যে সম্পর্ক

  • Producer (প্রোডিউসার) মেসেজ তৈরি করে এবং Consumer (কনজিউমার) সেই মেসেজ গ্রহণ করে।
  • এখানে, MessageProducerExample ক্লাসটি মেসেজ পাঠাচ্ছে এবং MessageConsumerExample ক্লাসটি সেই মেসেজ গ্রহণ করছে।
  • মেসেজটি "TEST_QUEUE"-এ জমা হবে এবং কনজিউমার তখন এটি গ্রহণ করবে।

এই সিস্টেমটি JMS (Java Message Service) প্রোটোকল ব্যবহার করে অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারের মধ্যে মেসেজ প্রেরণ এবং গ্রহণ করে।


সারাংশ

অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) ব্যবহারের মাধ্যমে Message Producers এবং Message Consumers তৈরি করা একটি সহজ প্রক্রিয়া। Producer মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়, যেখানে Consumer সেই মেসেজ গ্রহণ করে এবং প্রক্রিয়া করে। এই পদ্ধতিতে অ্যাপ্লিকেশনগুলো একে অপরের সাথে অ্যাসিঙ্ক্রোনাসভাবে যোগাযোগ করতে পারে এবং তথ্য আদান-প্রদান নিশ্চিত করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion